﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;

namespace Autorizacion_facturas_caja.Vacaciones
{
    public partial class frmVacaciones_Disfrutadas_Pagar : Form
    {
        Manejador_Calcula_Fecha Mane = new Manejador_Calcula_Fecha();
        Manejador_Vacaciones MV = new Manejador_Vacaciones();
        Manejador_Empleado_Captura MEC = new Manejador_Empleado_Captura();
        objVacaciones obj = new objVacaciones();
        objRH obj1 = new objRH();

        #region FUNCIONES
        public frmVacaciones_Disfrutadas_Pagar()
        {
            InitializeComponent();
            ObtieneDatosCombo();
        }

        //asigna propiedades 
        private void propiedadesColumnas()
        {
            this.dataGridView1.RowHeadersVisible = false;
            /*Esconde las columnas*/
            this.dataGridView1.Columns["id_empleado"].Visible = false;
            this.dataGridView1.Columns["id_sucursal"].Visible = false;
            this.dataGridView1.Columns["fecha_ingreso"].Visible = false;
            this.dataGridView1.Columns["id_jefe"].Visible = false;
            this.dataGridView1.Columns["cuenta_banco"].Visible = false;
            this.dataGridView1.Columns["estatus"].Visible = false;
            this.dataGridView1.Columns["nombre"].Visible = false;
            this.dataGridView1.Columns["apellidos"].Visible = false;
            this.dataGridView1.Columns["id_Vacaciones"].Visible = false;
            this.dataGridView1.Columns["Dias_Disfrutados"].Visible = false;
            this.dataGridView1.Columns["autorizado"].Visible = false;
            this.dataGridView1.Columns["Estatus"].Visible = false;
            this.dataGridView1.Columns["Estatus1"].Visible = false;
            this.dataGridView1.Columns["Dias_Restantes"].Visible = false;
            this.dataGridView1.Columns["Dias_Acomulados"].Visible = false;
            this.dataGridView1.Columns["Referencia"].Visible = false;
            this.dataGridView1.Columns["Ciclo"].Visible = false;
            this.dataGridView1.Columns["Periodo"].Visible = false;
            this.dataGridView1.Columns["Monto_Dias_Acomulados"].Visible = false;
            this.dataGridView1.Columns["Fecha_Alta"].Visible = false;
            this.dataGridView1.Columns["Monto_Dias_Pagados"].Visible = false;
            this.dataGridView1.Columns["Dias_Pagados"].Visible = false;

            if (cmbPago.Text == "DIAS VACACIONES")
            {

                this.dataGridView1.Columns["Monto_Prima"].Visible = false;
                this.dataGridView1.Columns["Dias_Correspondientes"].Visible = false;
                this.dataGridView1.Columns["Antiguedad"].Visible = false;
                this.dataGridView1.Columns["id_Vacaciones_Pago"].Visible = false;
                this.dataGridView1.Columns["Id_Vacaciones"].Visible = false;
                this.dataGridView1.Columns["Fecha_Pago"].HeaderText = "FECHA DE PAGO";
                this.dataGridView1.Columns["Dias_Pagar"].HeaderText = "DIAS A PAGAR";
                this.dataGridView1.Columns["Monto_Diario"].Visible = false;
                this.dataGridView1.Columns["Monto_Total"].HeaderText = "MOMNTO TOTAL";
                this.dataGridView1.Columns["Comentario"].Visible = false;
                this.dataGridView1.Columns["Estatus_Autorizado"].Visible = false;
                this.dataGridView1.Columns["Estatus2"].Visible = false;
                this.dataGridView1.Columns["id_jefe"].Visible = false;
                this.dataGridView1.Columns["Id_Empleado1"].Visible = false;
                this.dataGridView1.Columns["Id_Vacaciones1"].Visible = false;
                this.dataGridView1.Columns["id_empresa"].Visible = false;
                this.dataGridView1.Columns["id_departamento"].Visible = false;
                this.dataGridView1.Columns["Dias_Programados"].Visible = false;
                this.dataGridView1.Columns["Nsucursal"].Visible = false;
                this.dataGridView1.Columns["empresa"].Visible = false;
                this.dataGridView1.Columns["tipo_dias"].HeaderText = "DIAS";
                this.dataGridView1.Columns["Fecha_Autorizacion"].Visible = false;

                this.dataGridView1.Columns["Fecha_Pago"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Dias_Pagar"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Monto_Total"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["tipo_dias"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                this.dataGridView1.Columns["Fecha_Pago"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Dias_Pagar"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Monto_Total"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["tipo_dias"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
            else
            {
                this.dataGridView1.Columns["id_jefe1"].Visible = false;
                this.dataGridView1.Columns["idsucursal"].Visible = false;
                this.dataGridView1.Columns["Fecha_Pago"].Visible = false;
                this.dataGridView1.Columns["Autorizado1"].Visible = false;
                this.dataGridView1.Columns["Fecha_Autorizado"].Visible = false;
                this.dataGridView1.Columns["Estatus2"].Visible = false;
                this.dataGridView1.Columns["Gratificacion"].Visible = false;
                this.dataGridView1.Columns["Monto_Diario"].Visible = false;
                this.dataGridView1.Columns["empresa"].Visible = false;
                this.dataGridView1.Columns["sucursal"].Visible = false;

                this.dataGridView1.Columns["id_Vacaciones1"].Visible = false;
                this.dataGridView1.Columns["Monto_Prima1"].Visible = false;
                this.dataGridView1.Columns["id_Prima_vacacional"].Visible = false;
                this.dataGridView1.Columns["id_empresa"].Visible = false;
                this.dataGridView1.Columns["id_departamento"].Visible = false;
                this.dataGridView1.Columns["id_departamento1"].Visible = false;
                this.dataGridView1.Columns["Dias_Programados"].Visible = false;
                this.dataGridView1.Columns["Id_Empleado1"].Visible = false;
                this.dataGridView1.Columns["Monto_Prima"].Visible = true;
                this.dataGridView1.Columns["Dias_Correspondientes"].Visible = true;
                this.dataGridView1.Columns["Antiguedad"].Visible = true;
                this.dataGridView1.Columns["Antiguedad"].HeaderText = "ANTIGUEDAD";
                this.dataGridView1.Columns["Antiguedad"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Antiguedad"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Monto_Prima"].HeaderText = "PRIMA VACACIONAL";
                this.dataGridView1.Columns["Monto_Prima"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Monto_Prima"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Dias_Correspondientes"].HeaderText = "DIAS POR LEY";
                this.dataGridView1.Columns["Dias_Correspondientes"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Dias_Correspondientes"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

            }

            //Renombra columnas

            this.dataGridView1.Columns["Nombre_apellidos"].HeaderText = "NOMBRE";
            this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
            this.dataGridView1.Columns["puesto"].HeaderText = "PUESTO";
            //  this.dataGridView1.Columns["Nombre1"].HeaderText = "Sucursal";
            this.dataGridView1.Columns["Dias_Programados"].HeaderText = "DIAS PROGRAMADOS";
            this.dataGridView1.Columns["Dias_Programados"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 1;
            //  this.dataGridView1.Columns["Nombre1"].DisplayIndex = 1;
            this.dataGridView1.Columns["departamento"].DisplayIndex = 2;
            this.dataGridView1.Columns["puesto"].DisplayIndex = 3;
        }
        //obtiene los datos 
        private void ObtieneDatosCombo()
        {
            //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
            cmbSucursal.DataSource = MEC.ObtieneSucursales();
            cmbSucursal.ValueMember = "SucId";
            cmbSucursal.DisplayMember = "Nombre";
        }
        //realiza la busqueda
        private void buscar()
        {
            if (cmbPago.Text == "DIAS VACACIONES")
            {
                obj1.Buscar = txtBuscar.Text.Trim();
                dataGridView1.DataSource = MV.ListaCursandoVac(obj1.Buscar, cmbSucursal.SelectedValue.ToString(), "DIAS");
                propiedadesColumnas();
            }
            else if (cmbPago.Text == "PRIMA VACACIONAL")
            {
                obj1.Buscar = txtBuscar.Text.Trim();
                dataGridView1.DataSource = MV.ListaCursandoVac(obj1.Buscar, cmbSucursal.SelectedValue.ToString(), "PRIMA2");
                propiedadesColumnas();
            }
        }


        #endregion

        #region BOTONES

        //llama al metodo buscar
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            buscar();
        }
        //guarda las modificaciones
        private void btnGuardarMod_Click(object sender, EventArgs e)
        {
            if (cmbPago.Text == "DIAS VACACIONES")
            {
                bool resp = false;
                foreach (DataGridViewRow fila in dataGridView1.Rows)
                {
                    if (Convert.ToBoolean(fila.Cells["Seleccionar"].Value))
                    {
                        obj.Id_Vacaciones_Pago = Convert.ToInt32(fila.Cells["id_Vacaciones_Pago"].Value);
                        obj.Monto_Total = fila.Cells["Monto_Total"].Value.ToString();
                        resp = MV.VacPagos(obj.Id_Vacaciones_Pago, "DIAS VACACIONES");
                    }
                }
                if (resp)
                {
                    MessageBox.Show("SE AUTORIZO EL PAGO", "AVISO");
                    dataGridView1.DataSource = MV.ListaCursandoVac(obj1.Buscar, cmbSucursal.SelectedValue.ToString(), "DIAS");
                    propiedadesColumnas();
                }
                else { MessageBox.Show("ERROR CONEXIÓN", "ALERTA"); }
            }
            else
            {
                bool resp = false;
                foreach (DataGridViewRow fila in dataGridView1.Rows)
                {

                    if (Convert.ToBoolean(fila.Cells["Seleccionar"].Value))
                    {
                        obj.Id_Vacaciones = Convert.ToInt32(fila.Cells["Id_Vacaciones"].Value);
                        obj.Prima_Vacacional = fila.Cells["Prima_Vacacional"].Value.ToString();
                        resp = MV.VacPagos(obj.Id_Vacaciones, "PRIMA VACACIONAL");
                    }
                }
                if (resp)
                {
                    MessageBox.Show("SE AUTORIZO EL PAGO", "AVISO");
                    dataGridView1.DataSource = MV.ListaCursandoVac(obj1.Buscar, cmbSucursal.SelectedValue.ToString(), "PRIMA2");
                    propiedadesColumnas();
                }
                else { MessageBox.Show("ERROR CONEXIÓN", "ALERTA"); }
            }
        }
        //sale de la forma
        private void btnRegresar_Click(object sender, EventArgs e)
        {
            Close();
        }


        #endregion

        #region  EVENTOS
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            obj1.Tipo = cmbPago.Text.Trim();
            if (e.ColumnIndex != 0 && e.RowIndex >= 0 && obj1.Tipo == "PRIMA VACACIONAL")
            {
                obj1.Id_Empleado = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                obj1.SucId = dataGridView1[1, e.RowIndex].Value.ToString();
                obj1.IdJefe = Convert.ToInt32(dataGridView1[2, e.RowIndex].Value);
                obj1.Nombre = dataGridView1[3, e.RowIndex].Value.ToString();
                obj1.Apellidos = dataGridView1[4, e.RowIndex].Value.ToString();
                obj1.Puesto = dataGridView1[5, e.RowIndex].Value.ToString();
                obj1.FechaIngreso = Convert.ToDateTime(dataGridView1[6, e.RowIndex].Value);
                obj1.Departamento = dataGridView1[30, e.RowIndex].Value.ToString();
                obj1.Cuenta_Banco = dataGridView1[7, e.RowIndex].Value.ToString();
                obj1.Id_Empresa = Convert.ToInt32(dataGridView1[9, e.RowIndex].Value);
                obj.Id_Vacaciones = Convert.ToInt32(dataGridView1[11, e.RowIndex].Value);
                obj.Antigüedad = Convert.ToInt32(dataGridView1[13, e.RowIndex].Value);
                obj.Dias_Correspondientes = Convert.ToInt32(dataGridView1[14, e.RowIndex].Value);
                obj.Dias_Disfrutados = Convert.ToInt32(dataGridView1[15, e.RowIndex].Value);
                obj.Prima_Vacacional = dataGridView1[16, e.RowIndex].Value.ToString();
                obj.Prima_Pagada = dataGridView1[17, e.RowIndex].Value.ToString();
                obj.Dias_Restantes = Convert.ToInt32(dataGridView1[19, e.RowIndex].Value);
                obj.Periodo = Convert.ToInt32(dataGridView1[20, e.RowIndex].Value);
                obj.Id_Prima_Vacacional = Convert.ToInt32(dataGridView1[33, e.RowIndex].Value);

                frmVacaciones_Pago fvp = new frmVacaciones_Pago(obj, obj1, 2);
                fvp.ShowDialog();

                buscar();
            }
            else if (e.ColumnIndex != 0 && e.RowIndex >= 0 && obj1.Tipo == "DIAS VACACIONES")
            {
                obj1.Id_Empleado = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                obj1.SucId = dataGridView1[1, e.RowIndex].Value.ToString();
                obj1.IdJefe = Convert.ToInt32(dataGridView1[2, e.RowIndex].Value);
                obj1.Nombre = dataGridView1[3, e.RowIndex].Value.ToString();
                obj1.Apellidos = dataGridView1[4, e.RowIndex].Value.ToString();
                obj1.Puesto = dataGridView1[5, e.RowIndex].Value.ToString();
                obj1.FechaIngreso = Convert.ToDateTime(dataGridView1[6, e.RowIndex].Value);
                obj1.Id_Departamento = Convert.ToInt32(dataGridView1[7, e.RowIndex].Value);
                obj1.Cuenta_Banco = dataGridView1[8, e.RowIndex].Value.ToString();
                obj1.Id_Empresa = Convert.ToInt32(dataGridView1[9, e.RowIndex].Value);
                obj.Id_Vacaciones = Convert.ToInt32(dataGridView1[11, e.RowIndex].Value);
                obj.Antigüedad = Convert.ToInt32(dataGridView1[13, e.RowIndex].Value);
                obj.Dias_Correspondientes = Convert.ToInt32(dataGridView1[14, e.RowIndex].Value);
                obj.Dias_Disfrutados = Convert.ToInt32(dataGridView1[15, e.RowIndex].Value);
                obj.Prima_Vacacional = dataGridView1[16, e.RowIndex].Value.ToString();
                obj.Prima_Pagada = dataGridView1[17, e.RowIndex].Value.ToString();
                obj.Dias_Restantes = Convert.ToInt32(dataGridView1[19, e.RowIndex].Value);
                obj.Periodo = Convert.ToInt32(dataGridView1[20, e.RowIndex].Value);
                obj.Id_Vacaciones_Pago = Convert.ToInt32(dataGridView1[29, e.RowIndex].Value);
                obj.Fecha_Pago = Convert.ToDateTime(dataGridView1[31, e.RowIndex].Value);
                obj.Dias_Pagar = Convert.ToInt32(dataGridView1[32, e.RowIndex].Value);
                obj.Monto_Dia = dataGridView1[33, e.RowIndex].Value.ToString();
                obj.Monto_Total = dataGridView1[34, e.RowIndex].Value.ToString();
                obj.Justificacion = dataGridView1[35, e.RowIndex].Value.ToString();
                obj.Tipo = dataGridView1[38, e.RowIndex].Value.ToString();
                obj1.Departamento = dataGridView1[39, e.RowIndex].Value.ToString();
                obj1.Nombre_Sucursal = dataGridView1[40, e.RowIndex].Value.ToString();
                obj1.Nombre_empresa = dataGridView1[41, e.RowIndex].Value.ToString();

                frmVacaciones_Pago fvp = new frmVacaciones_Pago(obj, obj1, 1);
                fvp.ShowDialog();

                buscar();
            }
        }

        private void frmVacaciones_Disfrutadas_Pagar_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(btnRegresar, "REGRESAR");
        }

        private void txtBuscar_TextChanged(object sender, EventArgs e)
        {
            buscar();
        }
        #endregion  
    }
}
